home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
cmln1085.arc
/
MODULA2.LTG
< prev
next >
Wrap
Text File
|
1986-02-27
|
1KB
|
52 lines
Listing 2.
Code for sort test.
MODULE CLMySort;
(* Program will test the speed of sorting an integer array. *)
(* The program will create an array sorted from smaller to larger *)
(* integers, then sort them in the reverse order. *)
FROM InOut IMPORT WriteString, WriteLn, WriteCard;
CONST MAX = 1000;
TYPE NUMBERS = ARRAY[1..MAX] OF CARDINAL;
VAR DONE : BOOLEAN;
JUMP, I, J, TEMPO : CARDINAL;
A : NUMBERS;è
BEGIN
WriteString('Initializing integer array'); WriteLn;
FOR I := 1 TO MAX DO
A[I] := I
END;
JUMP := MAX;
WriteString('Beginning to sort'); WriteLn;
WHILE JUMP > 1 DO
JUMP := JUMP DIV 2;
REPEAT
DONE := TRUE;
FOR J := 1 TO (MAX - JUMP) DO
I := J + JUMP;
IF A[I] > A[J] THEN
DONE := FALSE;
TEMPO := A[I];
A[I] := A[J];
A[J] := TEMPO;
END;
END;
UNTIL DONE;
END; (* End of while-loop *)
WriteString('Finished sorting!');
FOR I := 1 TO MAX DO
WriteCard(A[I],3);
WriteString(' ');
END;
WriteLn;
END CLMySort.